Self-Supervised Learning: Generative or Contrastive